﻿#pragma once
#include <wrl.h>
#include <vector>
#include <dxgidebug.h>


namespace Base {


	//  使用方式:
	// 1. 错误的位置 之前 调用 Set();
	// 2. 错误的位置 之后 调用 GetMessages();
	class DxgiInfoManager
	{
	public:
		DxgiInfoManager();
		~DxgiInfoManager() = default;
		DxgiInfoManager(const DxgiInfoManager&) = delete;
		DxgiInfoManager& operator=(const DxgiInfoManager&) = delete;
		void Set() noexcept;
		std::vector<std::string> GetMessages() const;
	private:
		unsigned long long next = 0u;
		Microsoft::WRL::ComPtr<IDXGIInfoQueue> pDxgiInfoQueue;
	};
}